/*
 * TsMediaMuxer.h
 *
 *  Created on: 2020年4月29日
 *      Author: chuanjiang.zh
 */

#ifndef TSMEDIAMUXER_H_
#define TSMEDIAMUXER_H_

#include "UMediaMuxer.h"

class TsMediaMuxerPrivate;

class DLLEXPORT TsMediaMuxer: public UMediaMuxer
{
public:
	TsMediaMuxer();
	virtual ~TsMediaMuxer();

	virtual bool open(const UMediaFormat& fmt);

	virtual void close();

	virtual bool isOpen();


	virtual bool getOutFormat(UMediaFormat& fmt);

	virtual bool input(UMediaPacket& pkt);

	virtual void setSink(Sink sink);

    virtual const char* getName();

protected:
	void handlePacket(uint8_t* data, int size, int64_t pts, int flags);

private:
	TsMediaMuxerPrivate*	m_pimp;
	UMediaFormat	m_format;

};

#endif /* TSMEDIAMUXER_H_ */
